iT邦幫忙

0

Line Message API + MongoDB 串接實作(三)查詢使用者訊息資料

  • 分享至 

  • xImage
  •  

要回覆使用者訊息的話,我們必須要從資料庫內找出使用者發過來的訊息,取得reply Token後再回覆給使用者.
MongoDB的Query查詢方式跟關連式資料庫相比是不同的,以下我們會透過實作查詢接口來帶大家完成.

資料結構長相

{
    _id: ObjectId("642910bf2e7be725ecce6b3b"),
    destination: <channel destination>,
    events: [
      {
        type: 'message',
        message: { _id: <message _id>, type: 'text', text: <user message> },
        webhookEventId: <webhookEventId>,
        deliveryContext: { isRedelivery: false },
        timestamp: '1680412863529',
        source: { type: 'user', userId: <userId> },
        replyToken: <your replyToken>,
        mode: 'active'
      }
    ],
    _class: 'com.example.lineMsgDemo.model.LineMsgBack' 
  }

查詢repository

public interface LineMessageRepository extends MongoRepository<LineMsgBack, String>{
	
	@Query("{'events.source.userId' : ?0 } ")
	public List<LineMsgBack> findByUserId(String userId);
}

可以發現它是用類似python的語法去映照查詢字串的

Controller

//根據使用者ID查詢
@GetMapping("/search/user/{userId}")
	public List<LineMsgBack> searchByUserId(@PathVariable String userId) {
		List<LineMsgBack> result = lineMessageRepository.findByUserId(userId);
		return result;
	}

這樣就完成使用者資料查詢接口了喔,很簡單吧

最後一篇我們會講要如何利用replyToken回覆使用者資訊

Line Message API + MongoDB 串接實作(四)發送訊息


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言